/* header created automatically with -DGEN_TREES_H */

local const ct_data static_ltree[L_CODES + 2] = {
    { { 12 }, { 8 } }, { { 140 }, { 8 } }, { { 76 }, { 8 } }, { { 204 }, { 8 } }, { { 44 }, { 8 } },
    { { 172 }, { 8 } }, { { 108 }, { 8 } }, { { 236 }, { 8 } }, { { 28 }, { 8 } }, { { 156 }, { 8 } },
    { { 92 }, { 8 } }, { { 220 }, { 8 } }, { { 60 }, { 8 } }, { { 188 }, { 8 } }, { { 124 }, { 8 } },
    { { 252 }, { 8 } }, { { 2 }, { 8 } }, { { 130 }, { 8 } }, { { 66 }, { 8 } }, { { 194 }, { 8 } },
    { { 34 }, { 8 } }, { { 162 }, { 8 } }, { { 98 }, { 8 } }, { { 226 }, { 8 } }, { { 18 }, { 8 } },
    { { 146 }, { 8 } }, { { 82 }, { 8 } }, { { 210 }, { 8 } }, { { 50 }, { 8 } }, { { 178 }, { 8 } },
    { { 114 }, { 8 } }, { { 242 }, { 8 } }, { { 10 }, { 8 } }, { { 138 }, { 8 } }, { { 74 }, { 8 } },
    { { 202 }, { 8 } }, { { 42 }, { 8 } }, { { 170 }, { 8 } }, { { 106 }, { 8 } }, { { 234 }, { 8 } },
    { { 26 }, { 8 } }, { { 154 }, { 8 } }, { { 90 }, { 8 } }, { { 218 }, { 8 } }, { { 58 }, { 8 } },
    { { 186 }, { 8 } }, { { 122 }, { 8 } }, { { 250 }, { 8 } }, { { 6 }, { 8 } }, { { 134 }, { 8 } },
    { { 70 }, { 8 } }, { { 198 }, { 8 } }, { { 38 }, { 8 } }, { { 166 }, { 8 } }, { { 102 }, { 8 } },
    { { 230 }, { 8 } }, { { 22 }, { 8 } }, { { 150 }, { 8 } }, { { 86 }, { 8 } }, { { 214 }, { 8 } },
    { { 54 }, { 8 } }, { { 182 }, { 8 } }, { { 118 }, { 8 } }, { { 246 }, { 8 } }, { { 14 }, { 8 } },
    { { 142 }, { 8 } }, { { 78 }, { 8 } }, { { 206 }, { 8 } }, { { 46 }, { 8 } }, { { 174 }, { 8 } },
    { { 110 }, { 8 } }, { { 238 }, { 8 } }, { { 30 }, { 8 } }, { { 158 }, { 8 } }, { { 94 }, { 8 } },
    { { 222 }, { 8 } }, { { 62 }, { 8 } }, { { 190 }, { 8 } }, { { 126 }, { 8 } }, { { 254 }, { 8 } },
    { { 1 }, { 8 } }, { { 129 }, { 8 } }, { { 65 }, { 8 } }, { { 193 }, { 8 } }, { { 33 }, { 8 } },
    { { 161 }, { 8 } }, { { 97 }, { 8 } }, { { 225 }, { 8 } }, { { 17 }, { 8 } }, { { 145 }, { 8 } },
    { { 81 }, { 8 } }, { { 209 }, { 8 } }, { { 49 }, { 8 } }, { { 177 }, { 8 } }, { { 113 }, { 8 } },
    { { 241 }, { 8 } }, { { 9 }, { 8 } }, { { 137 }, { 8 } }, { { 73 }, { 8 } }, { { 201 }, { 8 } },
    { { 41 }, { 8 } }, { { 169 }, { 8 } }, { { 105 }, { 8 } }, { { 233 }, { 8 } }, { { 25 }, { 8 } },
    { { 153 }, { 8 } }, { { 89 }, { 8 } }, { { 217 }, { 8 } }, { { 57 }, { 8 } }, { { 185 }, { 8 } },
    { { 121 }, { 8 } }, { { 249 }, { 8 } }, { { 5 }, { 8 } }, { { 133 }, { 8 } }, { { 69 }, { 8 } },
    { { 197 }, { 8 } }, { { 37 }, { 8 } }, { { 165 }, { 8 } }, { { 101 }, { 8 } }, { { 229 }, { 8 } },
    { { 21 }, { 8 } }, { { 149 }, { 8 } }, { { 85 }, { 8 } }, { { 213 }, { 8 } }, { { 53 }, { 8 } },
    { { 181 }, { 8 } }, { { 117 }, { 8 } }, { { 245 }, { 8 } }, { { 13 }, { 8 } }, { { 141 }, { 8 } },
    { { 77 }, { 8 } }, { { 205 }, { 8 } }, { { 45 }, { 8 } }, { { 173 }, { 8 } }, { { 109 }, { 8 } },
    { { 237 }, { 8 } }, { { 29 }, { 8 } }, { { 157 }, { 8 } }, { { 93 }, { 8 } }, { { 221 }, { 8 } },
    { { 61 }, { 8 } }, { { 189 }, { 8 } }, { { 125 }, { 8 } }, { { 253 }, { 8 } }, { { 19 }, { 9 } },
    { { 275 }, { 9 } }, { { 147 }, { 9 } }, { { 403 }, { 9 } }, { { 83 }, { 9 } }, { { 339 }, { 9 } },
    { { 211 }, { 9 } }, { { 467 }, { 9 } }, { { 51 }, { 9 } }, { { 307 }, { 9 } }, { { 179 }, { 9 } },
    { { 435 }, { 9 } }, { { 115 }, { 9 } }, { { 371 }, { 9 } }, { { 243 }, { 9 } }, { { 499 }, { 9 } },
    { { 11 }, { 9 } }, { { 267 }, { 9 } }, { { 139 }, { 9 } }, { { 395 }, { 9 } }, { { 75 }, { 9 } },
    { { 331 }, { 9 } }, { { 203 }, { 9 } }, { { 459 }, { 9 } }, { { 43 }, { 9 } }, { { 299 }, { 9 } },
    { { 171 }, { 9 } }, { { 427 }, { 9 } }, { { 107 }, { 9 } }, { { 363 }, { 9 } }, { { 235 }, { 9 } },
    { { 491 }, { 9 } }, { { 27 }, { 9 } }, { { 283 }, { 9 } }, { { 155 }, { 9 } }, { { 411 }, { 9 } },
    { { 91 }, { 9 } }, { { 347 }, { 9 } }, { { 219 }, { 9 } }, { { 475 }, { 9 } }, { { 59 }, { 9 } },
    { { 315 }, { 9 } }, { { 187 }, { 9 } }, { { 443 }, { 9 } }, { { 123 }, { 9 } }, { { 379 }, { 9 } },
    { { 251 }, { 9 } }, { { 507 }, { 9 } }, { { 7 }, { 9 } }, { { 263 }, { 9 } }, { { 135 }, { 9 } },
    { { 391 }, { 9 } }, { { 71 }, { 9 } }, { { 327 }, { 9 } }, { { 199 }, { 9 } }, { { 455 }, { 9 } },
    { { 39 }, { 9 } }, { { 295 }, { 9 } }, { { 167 }, { 9 } }, { { 423 }, { 9 } }, { { 103 }, { 9 } },
    { { 359 }, { 9 } }, { { 231 }, { 9 } }, { { 487 }, { 9 } }, { { 23 }, { 9 } }, { { 279 }, { 9 } },
    { { 151 }, { 9 } }, { { 407 }, { 9 } }, { { 87 }, { 9 } }, { { 343 }, { 9 } }, { { 215 }, { 9 } },
    { { 471 }, { 9 } }, { { 55 }, { 9 } }, { { 311 }, { 9 } }, { { 183 }, { 9 } }, { { 439 }, { 9 } },
    { { 119 }, { 9 } }, { { 375 }, { 9 } }, { { 247 }, { 9 } }, { { 503 }, { 9 } }, { { 15 }, { 9 } },
    { { 271 }, { 9 } }, { { 143 }, { 9 } }, { { 399 }, { 9 } }, { { 79 }, { 9 } }, { { 335 }, { 9 } },
    { { 207 }, { 9 } }, { { 463 }, { 9 } }, { { 47 }, { 9 } }, { { 303 }, { 9 } }, { { 175 }, { 9 } },
    { { 431 }, { 9 } }, { { 111 }, { 9 } }, { { 367 }, { 9 } }, { { 239 }, { 9 } }, { { 495 }, { 9 } },
    { { 31 }, { 9 } }, { { 287 }, { 9 } }, { { 159 }, { 9 } }, { { 415 }, { 9 } }, { { 95 }, { 9 } },
    { { 351 }, { 9 } }, { { 223 }, { 9 } }, { { 479 }, { 9 } }, { { 63 }, { 9 } }, { { 319 }, { 9 } },
    { { 191 }, { 9 } }, { { 447 }, { 9 } }, { { 127 }, { 9 } }, { { 383 }, { 9 } }, { { 255 }, { 9 } },
    { { 511 }, { 9 } }, { { 0 }, { 7 } }, { { 64 }, { 7 } }, { { 32 }, { 7 } }, { { 96 }, { 7 } },
    { { 16 }, { 7 } }, { { 80 }, { 7 } }, { { 48 }, { 7 } }, { { 112 }, { 7 } }, { { 8 }, { 7 } },
    { { 72 }, { 7 } }, { { 40 }, { 7 } }, { { 104 }, { 7 } }, { { 24 }, { 7 } }, { { 88 }, { 7 } },
    { { 56 }, { 7 } }, { { 120 }, { 7 } }, { { 4 }, { 7 } }, { { 68 }, { 7 } }, { { 36 }, { 7 } },
    { { 100 }, { 7 } }, { { 20 }, { 7 } }, { { 84 }, { 7 } }, { { 52 }, { 7 } }, { { 116 }, { 7 } },
    { { 3 }, { 8 } }, { { 131 }, { 8 } }, { { 67 }, { 8 } }, { { 195 }, { 8 } }, { { 35 }, { 8 } },
    { { 163 }, { 8 } }, { { 99 }, { 8 } }, { { 227 }, { 8 } }
};

local const ct_data static_dtree[D_CODES] = {
    { { 0 }, { 5 } }, { { 16 }, { 5 } }, { { 8 }, { 5 } }, { { 24 }, { 5 } }, { { 4 }, { 5 } },
    { { 20 }, { 5 } }, { { 12 }, { 5 } }, { { 28 }, { 5 } }, { { 2 }, { 5 } }, { { 18 }, { 5 } },
    { { 10 }, { 5 } }, { { 26 }, { 5 } }, { { 6 }, { 5 } }, { { 22 }, { 5 } }, { { 14 }, { 5 } },
    { { 30 }, { 5 } }, { { 1 }, { 5 } }, { { 17 }, { 5 } }, { { 9 }, { 5 } }, { { 25 }, { 5 } },
    { { 5 }, { 5 } }, { { 21 }, { 5 } }, { { 13 }, { 5 } }, { { 29 }, { 5 } }, { { 3 }, { 5 } },
    { { 19 }, { 5 } }, { { 11 }, { 5 } }, { { 27 }, { 5 } }, { { 7 }, { 5 } }, { { 23 }, { 5 } }
};

const uch _dist_code[DIST_CODE_LEN] = {
    0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8,
    8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10,
    10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
    11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13,
    13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
    13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
    14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
    14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
    14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
    15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
    15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
    15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17,
    18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
    23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
    24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
    26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
    26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27,
    27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
    27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
    28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
    29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
    29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
    29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29
};

const uch _length_code[MAX_MATCH - MIN_MATCH + 1] = {
    0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12,
    13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16,
    17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19,
    19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
    21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22,
    22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
    23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
    24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26,
    26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
    26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
    27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28
};

local const int base_length[LENGTH_CODES] = {
    0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56,
    64, 80, 96, 112, 128, 160, 192, 224, 0
};

local const int base_dist[D_CODES] = {
    0, 1, 2, 3, 4, 6, 8, 12, 16, 24,
    32, 48, 64, 96, 128, 192, 256, 384, 512, 768,
    1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576
};